﻿using System;
using System.Collections.Generic;
using TPDiseño.Clases_de_Entidad;
using DAO.DataSetConsultoraTableAdapters;

namespace DAO
{
    public class DAOEstado : DAO
    {
        //Atributos de manejo de instancia (singleton)
        static DAOEstado instance = null;  
        // Atributos para acceso a los DataSet Tipados
        private DataSetConsultora.EstadoDataTable EstadoTabla = new DataSetConsultora.EstadoDataTable();
        private EstadoTableAdapter EstadoTableAdapter = new EstadoTableAdapter();
        // Dependencias de otros DAOs
        //private DAOEstado miDAOEstado = DAOEstado.Instance;

        public static DAOEstado Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (padlock)
                    {
                        if (instance == null)
                        {
                            instance = new DAOEstado();
                        }
                    }
                }
                return instance;
            }
        }
        
        public Estado guardar(Estado unEstado)
        {

            //EstadoTableAdapter.Insertar(unEstado._estado, unEstado._estados_sig);

            return recolectarUno();
        }
        
          
        public Estado cargar(Int32 unEstado_id)
        {

            Estado nuevoEstadoEnlazado;

            // Obtengo la empresa por id en empresaTabla
            EstadoTabla = EstadoTableAdapter.consultarPor(unEstado_id);
            
            //nuevoEstadoEnlazado._estados_sig.add(miDAOEstado.cargar(EstadoTabla[0].estado_id));

            return recolectarUno();
        }
        

        public Estado recolectarUno() {

            // Finalmente retorno un nuevo objeto Empresa mapeado de la tabla
            return new Estado(EstadoTabla[0].id,
                              EstadoTabla[0].estado
                             );
        }
     
    }
    
}
